home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / IdDictionary.C < prev    next >
C/C++ Source or Header  |  1990-12-04  |  954b  |  54 lines

  1. //$IdDictionary,IdSet$
  2. #include "IdDictionary.h"
  3.  
  4. //---- IdDictionary ------------------------------------------------------------
  5.  
  6. MetaImpl0(IdDictionary);
  7.  
  8. IdDictionary::IdDictionary(int s) : Dictionary(s)
  9. {
  10. }
  11.  
  12. u_long IdDictionary::HashObject(Object *op)
  13. {
  14.     if (op->IsDeleted()) 
  15.     return op->Hash();
  16.     return (u_long) ((Assoc*)op)->Key();
  17. }
  18.     
  19. bool IdDictionary::ObjectsEqual(Object *op1, Object *op2)
  20. {
  21.     return ((Assoc*)op1)->Key() == ((Assoc*)op2)->Key();    
  22. }
  23.  
  24. Set* IdDictionary::Keys()
  25. {
  26.     register ObjPtr op;
  27.     register SetPtr sp= new IdSet;    
  28.     DictIterKeys next(this);
  29.     
  30.     while (op= next())
  31.     sp->Add(op);
  32.     return sp;
  33. }
  34.  
  35. //---- IdSet -------------------------------------------------------------------
  36.  
  37. MetaImpl0(IdSet);
  38.  
  39. IdSet::IdSet(int s) : Set(s)
  40. {
  41. }
  42.  
  43. u_long IdSet::HashObject(Object *op)
  44. {
  45.     return ((unsigned int) op);
  46. }
  47.     
  48. bool IdSet::ObjectsEqual(Object *op1, Object *op2)
  49. {
  50.     return op1 == op2;    
  51. }
  52.  
  53.  
  54.